iT邦幫忙

2021 iThome 鐵人賽

DAY 13
1
Software Development

跟著官方文件學習Laravel, 並實作出一個會員登入系統系列 第 13

Day13 跟著官方文件學習Laravel-了解RESTful API

  • 分享至 

  • xImage
  •  

在了解RESTful API之前,先簡單講解一下HTTP method。我們知道在HTTP method常使用的方法有

  • GET
  • POST
  • PUT
  • DELETE
    而再這之中,又以GET、POST最常被使用

GET

類似明信片的概念,傳遞的參數會被別人看見

url: http://localhost:8080/user?id=123&name=Jim

POST

類似於信封的概念,傳遞的參數不會被看見

url: http://localhost:8080/user
request body:
{
"id": 123,
"name": "Jim"
}

好,那什麼是RESTful API呢,這不分會分成兩段,分別是RESTful及API

什麼是API呢,我個人認為是你提供一個功能讓別人使用,那你提供這個功能也必須告訴別人使用的方法。

例如:
/getUsers 是取得所有使用者的資訊,包含姓名,帳號,密碼。
/createUser 則是創建一筆user的資料。

但這時後,會發現一個問題,要使用的人不知道要用什麼Http method,要傳遞什麼資料,回傳的格式是什麼等等的疑問。
所以這時候,我們要提供一份文件,去說明整個API使用的方式。

如以下:
取得使用者列表API

Http Request

GET /getUsers

Query Parameters

Name Type Description required
size int 取得幾位user yes

Http Response

response body

{
"UserList": [
    {
        "id": 1,
        "name": "Jim",
        "account": "JimChie"
    }
]
}

有了這份文件,我就可以明白這個API如何使用了。可以大大減少溝通的成本。
除了我們自己開發的API,各大網站也有提供我們公開的API使用,例如:youtube、FB等等。

而因為每個人的喜好風格不同,寫出來的API也會有所差異,變成說在取得不同人創造的API時,我們就要去習慣不同的文件,不同的使用方法,也會造成開發上的效率下降,這時候,RESTful就誕生了!

RESTful

  • 目的是簡化溝通成本
  • API若符合REST風格,那這個API就是RESTful API
  • 只是一種風格,並不是規範

如何使用:

  1. 使用http method表示動作
method 動作 說明
GET 查詢 取得一筆資料
POST 新增 新增一筆資料
PUT 更新 更新一筆資料
DELETE 刪除 刪除一筆資料
  1. 利用url路徑描述資料階層關係

例如:

階層路徑 說明
GET /users 取得所有user
GET /users/1 取得id = 1的user
GET /users/1/posts 取得id = 1的user的所有post
GET /users/1/posts/225 取得id = 1的user的 id = 225的post

透過這種階層,可以利用路徑闡述API的用途。

  1. response body 需回傳json或xml格式

符合這三種,就可以稱為RESTful API,但這只是一種風格,不是規範,所以在製造API時,不一定要造這個規定。


上一篇
Day12 跟著官方文件學習Laravel-Session
下一篇
Day14 跟著官方文件學習Laravel-實作API(ㄧ)
系列文
跟著官方文件學習Laravel, 並實作出一個會員登入系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言